<%@ page language="java" import="com.sap.mw.jco.IFunctionTemplate" pageEncoding="UTF-8" %>
<%@page import="com.sap.mw.jco.JCO" %>
<%@page import="com.weaver.integration.datesource.SAPInterationOutUtil" %>
<%@page import="com.weaver.integration.log.LogInfo" %>
<%@page import="net.sf.json.JSONArray" %>
<%@ page import="net.sf.json.JSONObject" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<jsp:useBean id="bb" class="weaver.general.BaseBean"/>
<%
    String json = "{\"flag\":\"0\"}";
    String mbjson = "";
    String i_inorder = Util.null2String(request.getParameter("i_inorder"));
    String i_kstar = Util.null2String(request.getParameter("i_kstar"));
    String i_year = Util.null2String(request.getParameter("i_year"));
    String i_monat = Util.null2String(request.getParameter("i_monat"));
    String hjjfje = Util.null2String(request.getParameter("hjjfje"));
    Map<String, String> map1 = new HashMap<>();
    map1.put("I_INORDER", i_inorder);
    map1.put("I_KSTAR", i_kstar);
    map1.put("I_YEAR", i_year);
    map1.put("I_MONAT", i_monat);
    float yyyssum = 0;
    float kyyssum = 0;
    JSONArray jsonArray = ZBPM_PR_BUDGET_execute(map1);

    for(int i=0;i<jsonArray.size();i++){
        JSONObject job = jsonArray.getJSONObject(i);   // 遍历 jsonarray 数组，把每一个对象转成 json 对象

        String zmon = Util.null2String(job.getString("ZMON"));//会计期间
        String aufnr = Util.null2String(job.getString("AUFNR"));//订单号
        String kstar = Util.null2String(job.getString("KSTAR"));//成本要素
        String zplan = Util.null2String(job.getString("ZPLAN"));//交易货币中的总值
        String zavaamt = Util.null2String(job.getString("ZAVAAMT"));//交易货币中的总值
        String p_ktext = Util.null2String(job.getString("P_KTEXT"));//ORDER 描述
        String p_txt50 = Util.null2String(job.getString("P_TXT50"));//科目描述
        float yyys = Util.getFloatValue(zplan);//已有预算
        float kyys = Util.getFloatValue(zavaamt);//可用预算
        yyyssum += yyys;
        kyyssum += kyys;
        String str ="{\"zmon\":\"" + zmon + "\",\"aufnr\":\"" + aufnr + "\",\"kstar\":\"" + kstar + "\",\"zplan\":\"" + zplan + "\",\"zavaamt\":\"" + zavaamt + "\",\"p_ktext\":\""+p_ktext +"\",\"p_txt50\":\""+p_txt50 +"\"}";
        if("".equals(mbjson)){
            mbjson = str;
        }else{
            mbjson += ","+str;
        }
    }

    if (!"".equals(mbjson)) {
       String str1 ="{\"yyyssum\":\"" + yyyssum + "\",\"kyyssum\":\"" + kyyssum + "\",\"hjjfje\":\"" + hjjfje + "\"}";
        mbjson+=","+str1;
        json="{\"flag\":\"1\",\"mb\":["+mbjson+"]}";
    }
    bb.writeLog(json);
    out.print(json);
%>
<%!
    public static JSONArray ZBPM_PR_BUDGET_execute(Map<String, String> map) {
        SAPInterationOutUtil outUtil = new SAPInterationOutUtil();
        BaseBean baseBean = new BaseBean();
        baseBean.writeLog("in---ZBPM_PR_BUDGET_execute");
        JCO.Client myConnection = (JCO.Client) outUtil.getConnection("1", new LogInfo());
        myConnection.connect();
        JCO.Repository myRepository = new JCO.Repository("Repository", myConnection); // 只一个名字
        IFunctionTemplate ft = myRepository.getFunctionTemplate("ZBPM_PR_BUDGET");//设置BAPI函数
        JCO.Function bapi = ft.getFunction();
        JCO.ParameterList input = bapi.getImportParameterList();//输入参数和结构处理
        JCO.ParameterList inputtable = bapi.getTableParameterList();//输入表的处理
        //输入参数
        input.setValue(map.get("I_INORDER"), "I_INORDER");
        input.setValue(map.get("I_KSTAR"), "I_KSTAR");
        input.setValue(map.get("I_YEAR"), "I_YEAR");
        input.setValue(map.get("I_MONAT"), "I_MONAT");
        //执行函数
        myConnection.execute(bapi);
        JCO.ParameterList out = bapi.getExportParameterList();//输出参数和结构处理
        JCO.ParameterList Table00 = bapi.getTableParameterList();//输出表的处理

        //返回处理结果以及日志
        JCO.Table tabs = Table00.getTable("IT_BUDGET");
        JSONArray jsonArray = new JSONArray();
        for (int i = 0; i < tabs.getNumRows(); i++) {
            JSONObject jsonObject = new JSONObject();
            tabs.setRow(i);
            jsonObject.put("MANDT", Util.null2String(tabs.getValue("MANDT")));//客户端
            jsonObject.put("ZMON", Util.null2String(tabs.getValue("ZMON")));//会计期间
            jsonObject.put("AUFNR", Util.null2String(tabs.getValue("AUFNR")));//订单号
            jsonObject.put("KSTAR", Util.null2String(tabs.getValue("KSTAR")));//成本要素
            jsonObject.put("ZPLAN", Util.null2String(tabs.getValue("ZPLAN")));//交易货币中的总值
            jsonObject.put("ZACTUL", Util.null2String(tabs.getValue("ZACTUL")));//交易货币中的总值
            jsonObject.put("ZCOMMIT", Util.null2String(tabs.getValue("ZCOMMIT")));//交易货币中的总值
            jsonObject.put("ZREQAMT", Util.null2String(tabs.getValue("ZREQAMT")));//交易货币中的总值
            jsonObject.put("ZACCAMT", Util.null2String(tabs.getValue("ZACCAMT")));//交易货币中的总值
            jsonObject.put("ZAVAAMT", Util.null2String(tabs.getValue("ZAVAAMT")));//交易货币中的总值
            jsonObject.put("P_KTEXT", Util.null2String(out.getValue("P_KTEXT")));//ORDER 描述
            jsonObject.put("P_TXT50", Util.null2String(out.getValue("P_TXT50")));//科目描述
            jsonArray.add(jsonObject);
        }
        //返回处理结果以及日志
        JCO.releaseClient(myConnection);
        return jsonArray;
    }
%>
